package com.lancoo.ccas52.pojo.vo;

import com.lancoo.ccas52.entity.CourseWeek;
import com.lancoo.ccas52.entity.Teacher;
import com.lancoo.ccas52.entity.TeachingClassWeek;
import com.lancoo.ccas52.pojo.dto.ScheduleDto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.util.List;

/**
 * @ClassName TeachingClassDto
 * @Description 教学班详情-<预选 在线 选课结果></>
 * @Author quin
 * @Date 2023/2/1 14:31
 */
@Data
@Accessors(chain = true)
public class  TeachingClassCourseDto implements Serializable {

    private Long teachingClassId;

    private Long teachingPlanId;

    private Integer taskId;

    private String teachingClassName;

    @ApiModelProperty("修读性质：1主修2辅修")
    private Integer studyNature;

    @ApiModelProperty("所属校区")
    private String campusId;

    private String campusName;

    @ApiModelProperty("0无需选课 1在线选课;2:分级教学 3:预选教学班")
    private Integer teachingClassType;

    @ApiModelProperty("教学班容量-学生人数")
    private Integer classNum;

    @ApiModelProperty("是否可用 0 为不可用-已取消 1为可用-正常开班  2未设置")
    private Integer isEnable;

    private Long courseId;

    @ApiModelProperty("课程代码")
    private String courseCode;

    private String courseName;

    @ApiModelProperty("课程学分")
    private Double credit;

    @ApiModelProperty("总学时")
    private Integer totalHour;

    @ApiModelProperty("讲授学时")
    private Integer lectureHour;

    @ApiModelProperty("实验学时")
    private Integer experimentalHour;

    @ApiModelProperty("上机学时")
    private Integer computerHour;

    @ApiModelProperty("其他学时")
    private Integer otherHour;

    @ApiModelProperty("学院id  开课单位")
    private String collegeId;

    private String collegeName;

    private String courseTypeId;

    @ApiModelProperty("课程类别")
    private String courseType;

    @ApiModelProperty("课程性质 1必修  2选修")
    private Integer courseNature;

    @ApiModelProperty("专业性质，1:公共课，2:专业课")
    private Integer majorProp;

    @ApiModelProperty("选课总人数")
    private Integer studentAllNumber;

    @ApiModelProperty("选课人数")
    private Integer studentNumber;

    @ApiModelProperty("1：开课条件以下，2：达到开课条件")
    private Integer selectState;

    @ApiModelProperty("教学计划学院名称del")
    private String planCollegeName;

    @ApiModelProperty("所属年级del")
    private String gradeName;

    @ApiModelProperty("行政班字符串")
    private String toClass;

    @ApiModelProperty("分班标识 非空表示分班")
    private String uniqueShiftSign;

    @ApiModelProperty("基础平台专业名字")
    private String majorName;

    @ApiModelProperty("方向名字del")
    private String majorVersionName;

    @ApiModelProperty("1已选 2未选//排课状态 1已排（正常）、2已排（冲突）、3待排")
    private Integer state;

    @ApiModelProperty("1未锁定  2锁定")
    private Integer isLocked;

    @ApiModelProperty("冲突原因")
    private String conflictReason;

    @ApiModelProperty("参数设置")
    private List<TeachingClassWeek> courseWeeks;

    @ApiModelProperty("教师列表")
    private List<Teacher> teachers;

    @ApiModelProperty("课表")
    List<ScheduleDto> schedules;
}
